package com.fantastic.mapper.zjs;

import com.fantastic.model.pojo.zjs.VarietySpecs;
import com.fantastic.model.vo.zjs.SpecsTypeVo;
import com.fantastic.model.vo.zjs.VarietySpecsVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: rxx
 * @since: 2024/5/31 09:22
 * @description: 菜品信息和菜品规格信息关联表dao接口
 */
public interface VarietySpecsMapper {
    /**
     * 查询
     * 无条件时是查询全部的分页查询
     * 有条件时是查询条件的分页查询
     *
     * @param varietySpecs
     * @return
     */
    List<VarietySpecs> listVarietySpecs(VarietySpecs varietySpecs);

    /**
     * 查询单个菜品信息和菜品规格信息关联表信息
     * 通过菜品id和菜品规格信息id 查询变动价格
     *
     * @param varietyId 菜品信息id
     * @param specId    菜品规格信息id
     * @return
     */
    VarietySpecs getVarietySpecs(@Param("varietyId") Integer varietyId, @Param("specId") Integer specId);

    /**
     * 查询所有的菜品规格类型和其类型下的具体规格
     * @return
     */
    List<SpecsTypeVo> listSpecsType();


    /**
     * 查询全部或是单个菜品信息和多个规格的关联信息
     *
     * @param varietyId
     * @return
     */
    List<VarietySpecsVo> listVarietySpecsVo(Integer varietyId);

    /**
     * 添加菜品信息和菜品规格信息关联表信息
     *
     * @param varietySpecs
     * @return
     */
    Integer insertVarietySpecs(VarietySpecs varietySpecs);

    /**
     * 批量添加
     *
     * @param varietySpecs
     * @return
     */
    Integer addsVarietySpecs(List<VarietySpecs> varietySpecs);

    /**
     * 修改菜品信息和菜品规格信息关联表信息
     *
     * @param varietySpecs
     * @return
     */
    Integer updateVarietySpecs(VarietySpecs varietySpecs);

    /**
     * 删除菜品信息和菜品规格信息关联表信息
     *
     * @param specId
     * @return
     */
    Integer deleteVarietySpecs(@Param("varietyId") Integer varietyId, @Param("specId") Integer specId);
    /**
     * 批量删除菜品信息和菜品规格信息关联表信息
     *
     * @param specId
     * @return
     */
    Integer deletesVarietySpecs(@Param("varietyId") Integer[] varietyId, @Param("specId") Integer[] specId);

}
